home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Speccy ClassiX 1998
/
Speccy ClassiX 98.iso
/
amicdfilesystem
/
src
/
hfs.h
< prev
next >
Wrap
Text File
|
1994-10-03
|
3KB
|
152 lines
/* hfs.h: */
typedef struct ext_descr {
t_ushort StABN;
t_ushort NumABlks;
} t_ext_descr;
typedef t_ext_descr t_extdatarec[3];
typedef struct mdb {
t_ushort SigWord;
t_ulong CrDate;
t_ulong LsMod;
t_ushort Atrb;
t_ushort NmFls;
t_ushort VBMSt;
t_ushort AllocPtr;
t_ushort NmAlBlks;
t_ulong AlBlkSiz;
t_ulong ClpSiz;
t_ushort AlBlSt;
t_ulong NxtCNID;
t_ushort FreeBks;
t_uchar VolNameLen;
t_uchar VolName[27];
t_ulong VolBkUp;
t_ushort VSeqNum;
t_ulong WrCnt;
t_ulong XTClpSiz;
t_ulong CTClpSiz;
t_ushort NmRtDirs;
t_ulong FilCnt;
t_ulong DirCnt;
t_ulong FndrInfo[8];
t_ushort VCSize;
t_ushort VBMCSize;
t_ushort CtlCSize;
t_ulong XTFlSize;
t_extdatarec XTExtRec;
t_ulong CTFlSize;
t_extdatarec CTExtRec;
} t_mdb;
typedef struct node_descr {
t_ulong FLink;
t_ulong BLink;
t_uchar Type;
t_uchar NHeight;
t_ushort NRecs;
t_ushort Reserved;
} t_node_descr;
typedef struct hdr_node {
t_node_descr node_descr;
t_ushort Depth;
t_ulong Root;
t_ulong NRecs;
t_ulong FNode;
t_ulong LNode;
t_ushort NodeSize;
t_ushort KeyLen;
t_ulong NNodes;
t_ulong Free;
} t_hdr_node;
typedef struct idx_record {
char length; /* always 0x25 */
char reserved;
t_ulong parent_id;
t_uchar name_length;
char name[31];
t_ulong pointer;
} t_idx_record;
typedef struct leaf_record {
char length;
char reserved;
t_ulong parent_id;
t_uchar name_length;
char name[1];
} t_leaf_record;
typedef struct dir_record {
char type;
char reserved;
t_ushort Flags;
t_ushort Val;
t_ulong DirID;
t_ulong CrDat;
t_ulong MdDat;
t_ulong BkDat;
} t_dir_record;
typedef struct file_record {
char type;
char reserved;
char Flags;
char Typ;
char FInfo[16];
t_ulong FlNum;
t_ushort StBlk;
t_ulong LgLen;
t_ulong PyLen;
t_ushort RStBlk;
t_ulong RLgLen;
t_ulong RPyLen;
t_ulong CrDat;
t_ulong MdDat;
t_ulong BkDat;
char FXInfo[16];
t_ushort ClpSize;
t_extdatarec ExtRec;
t_extdatarec RExtRec;
t_ulong Resrv;
} t_file_record;
typedef struct dir_thread_record {
char type;
char reserved;
t_ulong Resrv[2];
t_ulong ParID;
t_uchar CNameLen;
t_uchar CName[31];
} t_dir_thread_record;
typedef struct file_thread_record {
char type;
char reserved;
t_ulong Resrv[2];
t_ulong ParID;
t_uchar CNameLen;
t_uchar CName[31];
} t_file_thread_record;
typedef union catalog_record {
t_dir_record d;
t_file_record f;
t_dir_thread_record dt;
t_file_thread_record ft;
} t_catalog_record;
int HFS_Find_Master_Directory_Block (CDROM *p_cd, t_mdb *p_mdb);
t_bool Uses_HFS_Protocol (CDROM *p_cd, int *p_skip);
t_bool HFS_Get_Header_Node (CDROM *p_cd, t_ulong p_mdb_pos,
t_mdb *p_mdb, t_hdr_node *p_hdr_node);
t_node_descr *HFS_Get_Node (CDROM *p_cd, t_ulong p_mdb_pos, t_mdb *p_mdb,
t_ulong p_node);
void Convert_Mac_Characters (char *p_buf, int p_buf_len);
t_bool HFS_Init_Vol_Info (VOLUME *p_volume, int p_start_block);